package database

import (
	"context"
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
	"log"
	"os"
	"time"
)

func GetMysqlConn(teant string) *gorm.DB {
	dsn := fmt.Sprintf("root:airport@tcp(10.0.1.10:3306)/%s?charset=utf8mb4&parseTime=True", teant)
	l2 := InitLogger("gorm.log")
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
		Logger: l2, // 使用自定义日志记录器
	})
	if err != nil {
		panic("数据库连接错误")
	} else {
		// 将日志信息写入 GORM 日志
		l2.Info(context.Background(), "数据库连接成功")
	}

	return db
}

func InitLogger(filename string) logger.Interface {
	logFile, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		panic("无法打开或创建日志文件")
	}
	// 初始化日志
	return logger.New(
		log.New(logFile, "\r\n", log.LstdFlags),
		logger.Config{
			SlowThreshold: time.Second,
			LogLevel:      logger.Info,
			Colorful:      false,
		},
	)
}
